﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.Common;
using System.Data.OleDb;
using System.IO;
using System.Threading;
using DevComponents.DotNetBar;

namespace So_Tu_Phap
{
    public partial class khai_sinh : DevComponents.DotNetBar.Metro.MetroForm
    {
        public khai_sinh()
        {
            InitializeComponent();
            //try
            //{
                loaddata();
            //}
            //catch (Exception ex)
            //{
            //    MessageBox.Show(ex.Message);
            //}

        }
        private void khai_sinh_Load(object sender, EventArgs e)
        {
             //   loaddata();
               
        }
        #region[loaddata]
        private void loaddata()
        {
           // bt_In.Visible = false;
            ////====== buttom
            object makhuvuc = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan", "List_PhuongXa", String.Format("TenTaiKhoan='{0}'", So_Tu_Phap.Properties.Settings.Default.Username), "");
            MessageBox.Show("'" + makhuvuc.ToString() + "'");
           
            //==== số========================================================================= 
            txt_SoHieu.Text = GetMaGiayPhep();
            //==== load loai khai sinh========================================================
            #region [load loai khai sinh]
            DataTable dtloaiKS = CMSUtils.GetDataSQL("", "dbo_DMLoaiKhaiSinh", "*", "", "");
            ddl_loaiKS.DataSource = dtloaiKS;
            ddl_loaiKS.DisplayMember = "NoiDung";
            ddl_loaiKS.ValueMember = "LoaiKS";
            #endregion
            //=== load nơi sinh===============================================================
            #region [load nơi sinh]
            DataTable dt_NoiSinh = CMSUtils.GetDataSQL("", "dbo_DMNoiSinh", "*", "", "");
            ddl_noisinh.DataSource = dt_NoiSinh;
            ddl_noisinh.DisplayMember = "TenNoiSinh";
            ddl_noisinh.ValueMember = "MaNoiSinh";
            #endregion
            //=== load chức danh==============================================================
            #region [load chức danh]
            DataTable data = CMSUtils.GetDataSQL("", "dbo_DMChucDanh", "*", "", "");
            ddl_ChucDanh.DataSource = data;
            ddl_ChucDanh.ValueMember = "MaChucDanh";
            ddl_ChucDanh.DisplayMember = "TenChucDanh";
            #endregion
            //=== load trạng thái ho so=======================================================
            #region [load trạng thái ho so]
            DataTable dtTrangThaiHoSo = CMSUtils.GetDataSQL("", "dbo_DMTrangThai", "*", "", "");
            ddl_TrangThaiHoSo.DataSource = dtTrangThaiHoSo;
            ddl_TrangThaiHoSo.DisplayMember = "TenTrangThai";
            ddl_TrangThaiHoSo.ValueMember = "MaTrangThai";
            #endregion
            //=== load thành phần hồ sơ=======================================================
            #region [load thành phần hồ sơ]
            DataTable dtThanhPhanHoSo2 = CMSUtils.GetDataSQL("", "dbo_TB_ThanhPhanHoSo", "*", "LoaiHoSO = 'KHAISINH'", "");
            cbThanhPhanHoSo.DataSource = dtThanhPhanHoSo2;
            cbThanhPhanHoSo.ValueMember = "ThanhPhanHoSoID";
            cbThanhPhanHoSo.DisplayMember = "TenHoSo";
            cbThanhPhanHoSo.Enabled = false;
            for (int i = 0; i < cbThanhPhanHoSo.Items.Count; i++)
            {
                cbThanhPhanHoSo.SetItemChecked(i, true);
            }
            #endregion
            //load dan toc ===================================================================
            #region [load dân tộc]
            //=== load dân tôc con
            DataTable dt_DanToc_Con = CMSUtils.GetDataSQL("", "dbo_DMDanToc", "*", "", "");
            ddl_dantoc_con.DataSource = dt_DanToc_Con;
            ddl_dantoc_con.DisplayMember = "TenDanToc";
            ddl_dantoc_con.ValueMember = "MaDanToc";
            ddl_dantoc_con.SelectedValue = "KINH";
            //=== load dân tôc cha
            DataTable dt_DanToc_Cha = CMSUtils.GetDataSQL("", "dbo_DMDanToc", "*", "", "");
            ddl_dantoc_cha.DataSource = dt_DanToc_Cha;
            ddl_dantoc_cha.DisplayMember = "TenDanToc";
            ddl_dantoc_cha.ValueMember = "MaDanToc";
            ddl_dantoc_cha.SelectedValue = "KINH";
            //=== load dân tôc mẹ
            DataTable dt_DanToc_Me = CMSUtils.GetDataSQL("", "dbo_DMDanToc", "*", "", "");
            ddl_dantoc_me.DataSource = dt_DanToc_Me;
            ddl_dantoc_me.DisplayMember = "TenDanToc";
            ddl_dantoc_me.ValueMember = "MaDanToc";
            ddl_dantoc_me.SelectedValue = "KINH";
            #endregion
            //================================================================================
            #region [load quốc tịch]
            //=== load quốc tịch con
            DataTable dt_QuocTich_Con = CMSUtils.GetDataSQL("", "dbo_DMQuocTich", "*", "", "");
            ddl_quoctich_con.DataSource = dt_QuocTich_Con;
            ddl_quoctich_con.DisplayMember = "TenQuocTich";
            ddl_quoctich_con.ValueMember = "MaQuocTich";
            ddl_quoctich_con.SelectedValue = "VN";
            //=== load quốc tịch cha
            DataTable dt_QuocTich_Cha = CMSUtils.GetDataSQL("", "dbo_DMQuocTich", "*", "", "");
            ddl_quoctich_cha.DataSource = dt_QuocTich_Cha;
            ddl_quoctich_cha.DisplayMember = "TenQuocTich";
            ddl_quoctich_cha.ValueMember = "MaQuocTich";
            ddl_quoctich_cha.SelectedValue = "VN";
            //=== load quốc tịch MẸ 
            DataTable dt_QuocTich_Me = CMSUtils.GetDataSQL("", "dbo_DMQuocTich", "*", "", "");
            ddl_quoctich_me.DataSource = dt_QuocTich_Me;
            ddl_quoctich_me.DisplayMember = "TenQuocTich";
            ddl_quoctich_me.ValueMember = "MaQuocTich";
            ddl_quoctich_me.SelectedValue = "VN";
            #endregion
            //================================================================================
            #region [Load cán bộ hộ tịch]
            object taiKhoanIDCapXa = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan tk", "TaiKhoanID", String.Format("TenTaiKhoan='{0}' AND (SELECT LaQuanTri FROM dbo_TB_NhomTaiKhoan ntk WHERE tk.NhomTaiKhoanID = ntk.NhomTaiKhoanID)=1", So_Tu_Phap.Properties.Settings.Default.Username), "");

            object taiKhoanIDAdmintong = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan tk", "TaiKhoanID", String.Format("TenTaiKhoan='{0}' AND Administrator=1  AND (SELECT LaQuanTri FROM dbo_TB_NhomTaiKhoan ntk WHERE tk.NhomTaiKhoanID = ntk.NhomTaiKhoanID)=1", So_Tu_Phap.Properties.Settings.Default.Username), "");

            if (!CMSUtils.IsNull(taiKhoanIDCapXa) || !CMSUtils.IsNull(taiKhoanIDAdmintong))
            {
                DataTable dtcanbohotich = CMSUtils.GetDataSQL("", "dbo_TB_TaiKhoan", "*", "List_PhuongXa LIKE '%" + makhuvuc.ToString() + "%'", "");
                if (dtcanbohotich.Rows.Count > 0)
                {
                    ddl_CanBoHoTich.DataSource = dtcanbohotich;
                    ddl_CanBoHoTich.ValueMember = "TaiKhoanID";
                    ddl_CanBoHoTich.DisplayMember = "TenDayDu";
                    //  ddl_CanBoHoTich.SelectedIndex = 0;

                }
            }
            else
            {
                object taiKhoanIDCanBo = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan", "TenDayDu", String.Format("TenTaiKhoan='{0}'", So_Tu_Phap.Properties.Settings.Default.Username), "");
                if (!CMSUtils.IsNull(taiKhoanIDCanBo))
                {
                    ddl_CanBoHoTich.Text = taiKhoanIDCanBo.ToString();
                }
            }
            #endregion
            //================================================================================
            #region [Load Người ký]
            object taiKhoanIDCapXa2 = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan tk", "TaiKhoanID", String.Format("TenTaiKhoan='{0}' AND (SELECT LaQuanTri FROM dbo_TB_NhomTaiKhoan ntk WHERE tk.NhomTaiKhoanID = ntk.NhomTaiKhoanID)=1", So_Tu_Phap.Properties.Settings.Default.Username), "");

            object taiKhoanIDAdmintong2 = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan tk", "TaiKhoanID", String.Format("TenTaiKhoan='{0}' AND Administrator=1  AND (SELECT LaQuanTri FROM dbo_TB_NhomTaiKhoan ntk WHERE tk.NhomTaiKhoanID = ntk.NhomTaiKhoanID)=1", So_Tu_Phap.Properties.Settings.Default.Username), "");

            if (!CMSUtils.IsNull(taiKhoanIDCapXa2) || !CMSUtils.IsNull(taiKhoanIDAdmintong2))
            {
                DataTable dtNguoiKy = CMSUtils.GetDataSQL("", "dbo_TB_TaiKhoan", "*", "List_PhuongXa LIKE '%" + makhuvuc.ToString() + "%'", "");
                if (dtNguoiKy.Rows.Count > 0)
                {
                    ddl_NguoiKy.DataSource = dtNguoiKy;
                    ddl_NguoiKy.ValueMember = "TaiKhoanID";
                    ddl_NguoiKy.DisplayMember = "TenDayDu";
                    ddl_NguoiKy.SelectedValue = dtNguoiKy.Rows[0]["TaiKhoanID"].ToString();

                }
            }
            else
            {
                DataTable dtNguoiKy = CMSUtils.GetDataSQL("", "dbo_TB_TaiKhoan", "*", "List_PhuongXa LIKE '%" + makhuvuc.ToString() + "%'", "");
                if (dtNguoiKy.Rows.Count > 0)
                {
                    ddl_NguoiKy.DataSource = dtNguoiKy;
                    ddl_NguoiKy.ValueMember = "TaiKhoanID";
                    ddl_NguoiKy.DisplayMember = "TenDayDu";
                    ddl_NguoiKy.SelectedValue = dtNguoiKy.Rows[0]["TaiKhoanID"].ToString();

                }
            }
            #endregion  
            //================================================================================
            #region [Load phân phối hồ sơ]
            object taiKhoanIDCapXa3 = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan tk", "TaiKhoanID", String.Format("TenTaiKhoan='{0}' AND (SELECT LaQuanTri FROM dbo_TB_NhomTaiKhoan ntk WHERE tk.NhomTaiKhoanID = ntk.NhomTaiKhoanID)=1", So_Tu_Phap.Properties.Settings.Default.Username), "");

            object taiKhoanIDAdmintong3 = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan tk", "TaiKhoanID", String.Format("TenTaiKhoan='{0}' AND Administrator=1  AND (SELECT LaQuanTri FROM dbo_TB_NhomTaiKhoan ntk WHERE tk.NhomTaiKhoanID = ntk.NhomTaiKhoanID)=1", So_Tu_Phap.Properties.Settings.Default.Username), "");

            if (!CMSUtils.IsNull(taiKhoanIDCapXa3) || !CMSUtils.IsNull(taiKhoanIDAdmintong3))
            {
                DataTable dtPhanPhoi = CMSUtils.GetDataSQL("", "dbo_TB_TaiKhoan", "*", "List_PhuongXa LIKE '%" + makhuvuc.ToString() + "%'", "");
                if (dtPhanPhoi.Rows.Count > 0)
                {
                    ddl_PhanPhoiHoSo.DataSource = dtPhanPhoi;
                    ddl_PhanPhoiHoSo.ValueMember = "TaiKhoanID";
                    ddl_PhanPhoiHoSo.DisplayMember = "TenDayDu";
                    ddl_PhanPhoiHoSo.SelectedValue = dtPhanPhoi.Rows[0]["TaiKhoanID"].ToString();

                }
            }
            else
            {
                DataTable dtPhanPhoi = CMSUtils.GetDataSQL("", "dbo_TB_TaiKhoan", "*", "List_PhuongXa LIKE '%" + makhuvuc.ToString() + "%'", "");
                if (dtPhanPhoi.Rows.Count > 0)
                {
                    ddl_PhanPhoiHoSo.DataSource = dtPhanPhoi;
                    ddl_PhanPhoiHoSo.ValueMember = "TaiKhoanID";
                    ddl_PhanPhoiHoSo.DisplayMember = "TenDayDu";
                    ddl_PhanPhoiHoSo.SelectedValue = dtPhanPhoi.Rows[0]["TaiKhoanID"].ToString();

                }
            }
            #endregion
            //===format datetime==============================================================
            #region[Format datetime]
            //===== ngày tháng năm đăng ký
            this.txt_Nam.Format = DateTimePickerFormat.Custom;
            this.txt_Nam.CustomFormat = "dd/MM/yyyy";
            //===== ngày sinh con
            this.txt_NgaySinhCon.CustomFormat = " ";
            this.txt_NgaySinhCon.Format = DateTimePickerFormat.Custom;
            //====== Giờ sinh con 
            this.txt_GioSinhCon.CustomFormat = " ";
            this.txt_GioSinhCon.Format = DateTimePickerFormat.Custom;
            //====== ngày sinh cha
            this.txt_NgaySinhCha.CustomFormat = " ";
            this.txt_NgaySinhCha.Format = DateTimePickerFormat.Custom;
            //====== ngày sinh Mẹ
            this.txt_NgaySinhMe.CustomFormat = " ";
            this.txt_NgaySinhMe.Format = DateTimePickerFormat.Custom;
            //====== ngày sinh Người khai
            this.txt_NgaySinhNguoiKhai.CustomFormat = " ";
            this.txt_NgaySinhNguoiKhai.Format = DateTimePickerFormat.Custom;
            //====== ngày tiếp nhận
            this.txt_NgayDangKy.Format = DateTimePickerFormat.Custom;
            this.txt_NgayDangKy.CustomFormat = "dd/MM/yyyy";
            //====== ngày trả dự kiến
            this.txt_NgayTraDuKien.Format = DateTimePickerFormat.Custom;
            this.txt_NgayTraDuKien.CustomFormat = "dd/MM/yyyy";
            object thoigian = CMSUtils.GetDataSQL("dbo_DMThoiGianXuLyHoSo", "ThoiGian", "MaTable = 'KHAISINH'", "");
            int thoiHanXuLys = CheckNgayHenTraHS(Convert.ToInt32(thoigian));
            txt_NgayTraDuKien.Value = txt_NgayDangKy.Value.AddDays(thoiHanXuLys);
            //====== ngày cấp bản sao
            this.txt_NgayCapBanSao.CustomFormat = " ";
            this.txt_NgayCapBanSao.Format = DateTimePickerFormat.Custom;
            #endregion
        }
        #endregion
        #region[EVENT]
        private void txt_NgaySinhCon_ValueChanged(object sender, EventArgs e)
        {
            this.txt_NgaySinhCon.CustomFormat = "dd/MM/yyyy";
        }
        private void txt_GioSinhCon_ValueChanged(object sender, EventArgs e)
        {
            this.txt_GioSinhCon.CustomFormat = "hh:mm";
        }
        private void txt_NgaySinhCha_ValueChanged(object sender, EventArgs e)
        {
            int NamSinh = txt_NgaySinhCha.Value.Year;
            int NamHienTai = DateTime.Now.Year;
            int Tuoi = NamHienTai - NamSinh;
            txtTuoiCha.Text = Tuoi.ToString();
            if (Tuoi < 18)
            {
                if (cbChiCoNamSinh_Cha.Checked == true)
                {
                    MessageBox.Show("Ngày Sinh cha không được thấp hơn 18 tuổi!");
                    this.txt_NgaySinhCha.CustomFormat = "yyyy";
                }
                else
                {
                    MessageBox.Show("Ngày Sinh cha không được thấp hơn 18 tuổi!");
                    this.txt_NgaySinhCha.CustomFormat = "dd/MM/yyyy";
                }
            }
            else
            {
                if (cbChiCoNamSinh_Cha.Checked == true)
                {
                    this.txt_NgaySinhCha.CustomFormat = "yyyy";
                }
                else
                {
                    this.txt_NgaySinhCha.CustomFormat = "dd/MM/yyyy";
                }
            }
        }
        private void txt_NgaySinhMe_ValueChanged(object sender, EventArgs e)
        {
            int NamSinh = txt_NgaySinhMe.Value.Year;
            int NamHienTai = DateTime.Now.Year;
            int Tuoi = NamHienTai - NamSinh;
            txtTuoiMe.Text = Tuoi.ToString();
            if (Tuoi < 18)
            {
                if (cbChiCoNamSinh_Me.Checked == true)
                {
                    MessageBox.Show("Ngày Sinh mẹ không được thấp hơn 18 tuổi!");
                    this.txt_NgaySinhMe.CustomFormat = "yyyy";
                }
                else
                {
                    MessageBox.Show("Ngày Sinh mẹ không được thấp hơn 18 tuổi!");
                    this.txt_NgaySinhMe.CustomFormat = "dd/MM/yyyy";
                }
            }
            else
            {
                if (cbChiCoNamSinh_Me.Checked == true)
                {
                    this.txt_NgaySinhMe.CustomFormat = "yyyy";
                }
                else
                {
                    this.txt_NgaySinhMe.CustomFormat = "dd/MM/yyyy";
                }
            }
        }
        private void txt_NgaySinhNguoiKhai_ValueChanged(object sender, EventArgs e)
        {
            int NamSinh = txt_NgaySinhNguoiKhai.Value.Year;
            int NamHienTai = DateTime.Now.Year;
            int Tuoi = NamHienTai - NamSinh;
            txtTuoiNguoiKhai.Text = Tuoi.ToString();
            if (Tuoi < 18)
            {
                if (cbChiCoNamSinh_NguoiKhai.Checked == true)
                {
                    MessageBox.Show("Ngày Sinh người khai không được thấp hơn 18 tuổi!");
                    this.txt_NgaySinhNguoiKhai.CustomFormat = "yyyy";
                }
                else
                {
                    MessageBox.Show("Ngày Sinh người khai không được thấp hơn 18 tuổi!");
                    this.txt_NgaySinhNguoiKhai.CustomFormat = "dd/MM/yyyy";
                }
            }
            else
            {
                if (cbChiCoNamSinh_NguoiKhai.Checked == true)
                {
                    this.txt_NgaySinhNguoiKhai.CustomFormat = "yyyy";
                }
                else
                {
                    this.txt_NgaySinhNguoiKhai.CustomFormat = "dd/MM/yyyy";
                }
            }
        }
        private void txt_NgayCapBanSao_ValueChanged(object sender, EventArgs e)
        {
            this.txt_NgayCapBanSao.CustomFormat = "dd/MM/yyyy";
        }
        private void cbChiCoNamSinh_Con_CheckedChanged(object sender, EventArgs e)
        {
            if (cbChiCoNamSinh_Con.Checked == true)
            {
                this.txt_NgaySinhCon.CustomFormat = "yyyy";
            }
            else
            {
                this.txt_NgaySinhCon.CustomFormat = "dd/MM/yyyy";
            }
        }
        private void cbChiCoNamSinh_Cha_CheckedChanged(object sender, EventArgs e)
        {
            int NamSinh = txt_NgaySinhCha.Value.Year;
            int NamHienTai = DateTime.Now.Year;
            int Tuoi = NamHienTai - NamSinh;
            txtTuoiCha.Text = Tuoi.ToString();
            if (Tuoi < 18)
            {
                if (cbChiCoNamSinh_Cha.Checked == true)
                {
                    MessageBox.Show("Ngày Sinh cha không được thấp hơn 18 tuổi!");
                    this.txt_NgaySinhCha.CustomFormat = "yyyy";
                }
                else
                {
                    MessageBox.Show("Ngày Sinh cha không được thấp hơn 18 tuổi!");
                    this.txt_NgaySinhCha.CustomFormat = "dd/MM/yyyy";
                }
            }
            else
            {
                if (cbChiCoNamSinh_Cha.Checked == true)
                {
                    this.txt_NgaySinhCha.CustomFormat = "yyyy";
                }
                else
                {
                    this.txt_NgaySinhCha.CustomFormat = "dd/MM/yyyy";
                }
            }
        }
        private void cbChiCoNamSinh_Me_CheckedChanged(object sender, EventArgs e)
        {
            int NamSinh = txt_NgaySinhMe.Value.Year;
            int NamHienTai = DateTime.Now.Year;
            int Tuoi = NamHienTai - NamSinh;
            txtTuoiMe.Text = Tuoi.ToString();
            if (Tuoi < 18)
            {
                if (cbChiCoNamSinh_Me.Checked == true)
                {
                    MessageBox.Show("Ngày Sinh mẹ không được thấp hơn 18 tuổi!");
                    this.txt_NgaySinhMe.CustomFormat = "yyyy";
                }
                else
                {
                    MessageBox.Show("Ngày Sinh mẹ không được thấp hơn 18 tuổi!");
                    this.txt_NgaySinhMe.CustomFormat = "dd/MM/yyyy";
                }
            }
            else
            {
                if (cbChiCoNamSinh_Me.Checked == true)
                {
                    this.txt_NgaySinhMe.CustomFormat = "yyyy";
                }
                else
                {
                    this.txt_NgaySinhMe.CustomFormat = "dd/MM/yyyy";
                }
            }
        }
        private void cbChiCoNamSinh_NguoiKhai_CheckedChanged(object sender, EventArgs e)
        {
            int NamSinh = txt_NgaySinhNguoiKhai.Value.Year;
            int NamHienTai = DateTime.Now.Year;
            int Tuoi = NamHienTai - NamSinh;
            txtTuoiNguoiKhai.Text = Tuoi.ToString();
            if (Tuoi < 18)
            {
                if (cbChiCoNamSinh_NguoiKhai.Checked == true)
                {
                    MessageBox.Show("Ngày Sinh người khai không được thấp hơn 18 tuổi!");
                    this.txt_NgaySinhNguoiKhai.CustomFormat = "yyyy";
                }
                else
                {
                    MessageBox.Show("Ngày Sinh người khai không được thấp hơn 18 tuổi!");
                    this.txt_NgaySinhNguoiKhai.CustomFormat = "dd/MM/yyyy";
                }
            }
            else
            {
                if (cbChiCoNamSinh_NguoiKhai.Checked == true)
                {
                    this.txt_NgaySinhNguoiKhai.CustomFormat = "yyyy";
                }
                else
                {
                    this.txt_NgaySinhNguoiKhai.CustomFormat = "dd/MM/yyyy";
                }
            }
        }
        private int CheckNgayHenTraHS(int ngay)
        {
            int result = ngay;

            DateTime startDate = DateTime.Now;

            DataTable dtngaynghi = CMSUtils.GetDataSQL("", "dbo_TB_NgayNghi", "TuNgay,DenNgay,ApDungChoCacNam", "", "");

            for (var i = 1; i < ngay; i++)
            {
                DateTime testDate = startDate.AddDays(i);

                for (int j = 1; j < dtngaynghi.Rows.Count; j++)
                {
                    if (dtngaynghi.Rows[j]["ApDungChoCacNam"].ToString().Equals("1"))
                    {
                        if (Convert.ToDateTime(dtngaynghi.Rows[j]["TuNgay"]) <= testDate && testDate <= Convert.ToDateTime(dtngaynghi.Rows[j]["DenNgay"]))
                        {
                            result++;
                        }
                        else
                        {
                            switch (testDate.DayOfWeek)
                            {
                                case DayOfWeek.Saturday:
                                    result++;
                                    break;
                                case DayOfWeek.Sunday:
                                    result++;
                                    break;
                            }
                        }
                    }
                    else
                    {
                        if (DateTime.Now.Year == Convert.ToDateTime(dtngaynghi.Rows[j]["TuNgay"]).Year)
                        {
                            if (Convert.ToDateTime(dtngaynghi.Rows[j]["TuNgay"]) <= testDate && testDate <= Convert.ToDateTime(dtngaynghi.Rows[j]["DenNgay"]))
                            {
                                result++;
                            }
                            else
                            {
                                switch (testDate.DayOfWeek)
                                {
                                    case DayOfWeek.Saturday:
                                        result++;
                                        break;
                                    case DayOfWeek.Sunday:
                                        result++;
                                        break;
                                }
                            }
                        }
                    }
                }
            }

            return result;
        }
        private void txt_NgayDangKy_ValueChanged(object sender, EventArgs e)
        {
            object thoigian = CMSUtils.GetDataSQL("dbo_DMThoiGianXuLyHoSo", "ThoiGian", "MaTable = 'KHAISINH'", "");

            //txtHoTen.Text = thoigian.ToString();
            //return;
            int thoiHanXuLys = CheckNgayHenTraHS(Convert.ToInt32(thoigian));
            //txtHoTen.Text = thoiHanXuLys.ToString();
            //return;
            txt_NgayTraDuKien.Value = txt_NgayDangKy.Value.AddDays(thoiHanXuLys);
        }
        private string GetMaGiayPhep()
        {
            string maGiayPhep = "";

            for (int i = 1; ; i++)
            {
                if (i < 10)
                {
                    maGiayPhep = "0" + i + "/" + DateTime.Now.Year;
                }
                else
                {
                    maGiayPhep = i.ToString() + "/" + DateTime.Now.Year;
                }
                 return "";
                object makhuvuc = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan", "List_PhuongXa", String.Format("TenTaiKhoan='{0}'", So_Tu_Phap.Properties.Settings.Default.Username), "");
                object tempMaGiayPhep = CMSUtils.GetDataSQL("dbo_KhaiSinh", "So",
                        String.Format("YEAR(NOW()) = YEAR(NgayDangKy) AND So='{0}' AND MaKhuVuc='{1}'", maGiayPhep, makhuvuc.ToString()), "");

                MessageBox.Show(tempMaGiayPhep.ToString());
                return "";

                if (CMSUtils.IsNull(tempMaGiayPhep))
                {
                    break;
                }
            }
            return maGiayPhep;
        }
        #endregion

        #region[Action]
        private void bt_LuuHS_Click(object sender, EventArgs e)
        {
            string TaoMaKhaiSinh = "";
            object makhuvuc = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan", "List_PhuongXa", String.Format("TenTaiKhoan='{0}'", So_Tu_Phap.Properties.Settings.Default.Username), "");
            int count = int.Parse(CMSUtils.GetDataSQL("dbo_KhaiSinh t LEFT OUTER JOIN dbo_DMKhuVuc o ON o.MaKhuVuc = t.MaKhuVuc", "Count(t.MaKhuVuc)", "t.MaKhuVuc ='" + makhuvuc.ToString() + "'", "").ToString());
            for (int i = count; ; i++)
            {
                string j = makhuvuc.ToString();
                if (i <= 9)
                {
                    TaoMaKhaiSinh = j.ToString() + "000000000" + i.ToString();
                }
                else if (i > 9 && i <= 99)
                {
                    TaoMaKhaiSinh = j.ToString() + "00000000" + i.ToString();

                }
                else if (i > 99 && i <= 999)
                {
                    TaoMaKhaiSinh = j.ToString() + "0000000" + i.ToString();
                }
                else if (i > 999 && i <= 9999)
                {
                    TaoMaKhaiSinh = j.ToString() + "000000" + i.ToString();
                }
                else if (i > 9999 && i <= 99999)
                {
                    TaoMaKhaiSinh = j.ToString() + "00000" + i.ToString();
                }
                else if (i > 99999 && i <= 999999)
                {
                    TaoMaKhaiSinh = j.ToString() + "0000" + i.ToString();
                }
                else if (i > 999999 && i <= 9999999)
                {
                    TaoMaKhaiSinh = j.ToString() + "000" + i.ToString();
                }
                else if (i > 9999999 && i <= 99999999)
                {
                    TaoMaKhaiSinh = j.ToString() + "00" + i.ToString();
                }
                DataTable dtDemTheoKhuVuc = CMSUtils.GetDataSQL("", "dbo_khaisinh", "MaKhuVuc",
                    String.Format("MaKhuVuc = '{0}' AND MaKS='{1}'", makhuvuc.ToString(), TaoMaKhaiSinh), "");
                if (dtDemTheoKhuVuc.Rows.Count == 0)
                {
                    break;
                }
            }
            object taiKhoanIDCanBo = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan", "TenTaiKhoan", String.Format("TenTaiKhoan='{0}'", So_Tu_Phap.Properties.Settings.Default.Username), "");
            DateTime NgayCapBanSao = txt_NgayCapBanSao.Value;
            NgayCapBanSao = Convert.ToDateTime(txt_NgayCapBanSao.Value.ToString("MM/dd/yyyy"));
            DateTime NgayDangKy = txt_NgayDangKy.Value;
            NgayDangKy = Convert.ToDateTime(txt_NgayDangKy.Value.ToString("MM/dd/yyyy"));
            //==
            object NgaySinhNguoiKhai_Nam_check = "";
            object NgaySinhNguoiKhai_Nam = "";
            object NgaySinhNguoiKhai_Thang = "";
            object NgaySinhNguoiKhai_Ngay = "";
            //==
            object NgaySinhCon_Nam_check = "";
            object NgaySinhCon_Nam = "";
            object NgaySinhCon_Thang = "";
            object NgaySinhCon_Ngay = "";
            //==
            object NgaySinhCha_Nam_check = "";
            object NgaySinhCha_Nam = "";
            object NgaySinhCha_Thang = "";
            object NgaySinhCha_Ngay = "";
            //==
            object NgaySinhMe_Nam_check = "";
            object NgaySinhMe_Nam = "";
            object NgaySinhMe_Thang = "";
            object NgaySinhMe_Ngay = "";
            object NgayCapNhat = DateTime.Now;
            if (cbChiCoNamSinh_NguoiKhai.Checked == true)
            {
                NgaySinhNguoiKhai_Nam_check = txt_NgaySinhNguoiKhai.Value.Year;
                NgaySinhNguoiKhai_Nam = "";
                NgaySinhNguoiKhai_Thang = "";
                NgaySinhNguoiKhai_Ngay = "";
            }
            else
            {
                NgaySinhNguoiKhai_Nam_check = "";
                NgaySinhNguoiKhai_Nam = txt_NgaySinhNguoiKhai.Value.Year;
                NgaySinhNguoiKhai_Thang = txt_NgaySinhNguoiKhai.Value.Month;
                NgaySinhNguoiKhai_Ngay = txt_NgaySinhNguoiKhai.Value.Day;
            }
            if (cbChiCoNamSinh_Con.Checked == true)
            {
                NgaySinhCon_Nam_check = txt_NgaySinhCon.Value.Year;
                NgaySinhCon_Nam = "";
                NgaySinhCon_Thang = "";
                NgaySinhCon_Ngay = "";
            }
            else
            {
                NgaySinhCon_Nam_check = "";
                NgaySinhCon_Nam = txt_NgaySinhCon.Value.Year;
                NgaySinhCon_Thang = txt_NgaySinhCon.Value.Month;
                NgaySinhCon_Ngay = txt_NgaySinhCon.Value.Day;
            }
            if (cbChiCoNamSinh_Cha.Checked == true)
            {
                NgaySinhCha_Nam_check = txt_NgaySinhCha.Value.Year;
                NgaySinhCha_Nam = "";
                NgaySinhCha_Thang = "";
                NgaySinhCha_Ngay = "";
            }
            else
            {
                NgaySinhCha_Nam_check = "";
                NgaySinhCha_Nam = txt_NgaySinhCha.Value.Year;
                NgaySinhCha_Thang = txt_NgaySinhCha.Value.Month;
                NgaySinhCha_Ngay = txt_NgaySinhCha.Value.Day;
            }
            if (cbChiCoNamSinh_Me.Checked == true)
            {
                NgaySinhMe_Nam_check = txt_NgaySinhMe.Value.Year;
                NgaySinhMe_Nam = "";
                NgaySinhMe_Thang = "";
                NgaySinhMe_Ngay = "";
            }
            else
            {
                NgaySinhMe_Nam_check = "";
                NgaySinhMe_Nam = txt_NgaySinhMe.Value.Year;
                NgaySinhMe_Thang = txt_NgaySinhMe.Value.Month;
                NgaySinhMe_Ngay = txt_NgaySinhMe.Value.Day;
            }
            object maphuongxa = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan", "List_PhuongXa", String.Format("TenTaiKhoan='{0}'", So_Tu_Phap.Properties.Settings.Default.Username), "");
            object maquanhuyen = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan", "List_QuanHuyen", String.Format("TenTaiKhoan='{0}'", So_Tu_Phap.Properties.Settings.Default.Username), "");
            object matinhthanhpho = CMSUtils.GetDataSQL("dbo_TB_TaiKhoan", "List_TinhThanhPho", String.Format("TenTaiKhoan='{0}'", So_Tu_Phap.Properties.Settings.Default.Username), "");
            object phuongxa = CMSUtils.GetDataSQL("dbo_DMKhuVuc", "TenKhuVuc", String.Format("MaKhuVuc='{0}'", maphuongxa.ToString()), "");
            object quanhuyen = CMSUtils.GetDataSQL("dbo_DMKhuVuc", "TenKhuVuc", String.Format("MaKhuVuc='{0}'", maquanhuyen.ToString()), "");
            object tinhthanhpho = CMSUtils.GetDataSQL("dbo_DMKhuVuc", "TenKhuVuc", String.Format("MaKhuVuc='{0}'", matinhthanhpho.ToString()), "");
            
            Dictionary<string, object> dic = new Dictionary<string, object>();
            dic.Add("Check_NamSinh_NguoiKhai", NgaySinhNguoiKhai_Nam_check);
            dic.Add("Check_NamSinh_Me", NgaySinhMe_Nam_check);
            dic.Add("Check_NamSinh_Cha", NgaySinhCha_Nam_check);
            dic.Add("Check_NamSinh", NgaySinhCon_Nam_check);
            dic.Add("Nam", txt_Nam.Value.ToString("MM/dd/yyyy"));
            dic.Add("NoiDangKy", txt_NoiDangKy.Text);
            dic.Add("TN_HoSoKhac", txt_ThanhPhanHoSoKhac.Text);
            dic.Add("TN_CanBoChuyen", taiKhoanIDCanBo);
            dic.Add("sdtkhai", txt_SDT_NguoiKhai.Text);
            dic.Add("diachikhai", txt_DiaChi_NguoiKhai.Text);
            dic.Add("TN_MaPhanPhoi", ddl_PhanPhoiHoSo.SelectedValue);
            dic.Add("TN_MaTrangThai", "HT");
            dic.Add("TN_NgayTraDuKien", txt_NgayTraDuKien.Value.ToString("MM/dd/yyyy"));
            dic.Add("CaiChinh", "0");
            dic.Add("NgayCapNhat", NgayCapNhat.ToString());
            //===============================================================
            dic.Add("MaKS", TaoMaKhaiSinh);
            dic.Add("NguoiCapNhat", So_Tu_Phap.Properties.Settings.Default.Username);
            dic.Add("MaKhuVuc", makhuvuc.ToString());
            dic.Add("GioiTinh", rdGioiTinhNam.Checked);
            dic.Add("ThuongTru", cbThuongTru.Checked);
            dic.Add("Huy", cbHuy.Checked);
            dic.Add("NgayCapBanSao", NgayCapBanSao);
            dic.Add("NgayDangKy", NgayDangKy);
            dic.Add("NgaySinhCha", NgaySinhCha_Ngay);
            dic.Add("ThangSinhCha", NgaySinhCha_Thang);
            dic.Add("NamSinhCha", NgaySinhCha_Nam);
            dic.Add("NgaySinhMe", NgaySinhMe_Ngay);
            dic.Add("ThangSinhMe", NgaySinhMe_Thang);
            dic.Add("NamSinhMe", NgaySinhMe_Nam);
            dic.Add("NgaySinh", NgaySinhCon_Ngay);
            dic.Add("ThangSinh", NgaySinhCon_Thang);
            dic.Add("NamSinh", NgaySinhCon_Nam);
            dic.Add("GioSinh", txt_GioSinhCon.Value.Hour);
            dic.Add("PhutSinh", txt_GioSinhCon.Value.Minute);
            dic.Add("HoTenCBHT", ddl_CanBoHoTich.Text);
            dic.Add("LoaiKS", ddl_loaiKS.SelectedValue);
            dic.Add("NoiSinh", ddl_noisinh.Text);
            dic.Add("DanToc", ddl_dantoc_con.SelectedValue);
            dic.Add("QuocTich", ddl_quoctich_con.SelectedValue);
            dic.Add("DanTocCha", ddl_dantoc_cha.SelectedValue);
            dic.Add("QuocTichCha", ddl_quoctich_cha.SelectedValue);
            dic.Add("DanTocMe", ddl_dantoc_me.SelectedValue);
            dic.Add("QuocTichMe", ddl_quoctich_me.SelectedValue);
            dic.Add("NguoiKy", ddl_NguoiKy.Text);
            dic.Add("ChucDanh", ddl_ChucDanh.Text);
            dic.Add("Phuong", phuongxa.ToString());
            dic.Add("Quan", quanhuyen.ToString());
            dic.Add("ThanhPho", tinhthanhpho.ToString());
            dic.Add("So", txt_SoHieu.Text);
            dic.Add("QuyenSo", txt_QuyenSo.Text);
            dic.Add("HoTen", txt_HoTen_Con.Text);
            dic.Add("QueQuan", txt_QueQuan_Con.Text);
            dic.Add("ConThu", txt_ConThu.Text);
            dic.Add("HoTenCha", txt_HoTen_Cha.Text);
            dic.Add("QueQuanCha", txt_QueQuan_Cha.Text);
            dic.Add("DiaChiCha", txt_DiaChi_Cha.Text);
            dic.Add("HoTenMe", txt_HoTen_Me.Text);
            dic.Add("QueQuanMe", txt_QueQuan_Me.Text);
            dic.Add("DiaChiMe", txt_DiaChi_Me.Text);
            dic.Add("HoTenKhai", txt_HoTen_NguoiKhai.Text);
            dic.Add("TuoiKhai", txtTuoiNguoiKhai.Text);
            dic.Add("CMNDGTTTKhai", txt_CMND_NguoiKhai.Text);
            dic.Add("QuanHeKhai", txt_QuanHeVoiNguoiDuocKhai.Text);
            dic.Add("GhiChu", txt_GhiChu.Text);
            dic.Add("NgaySinhKhai", NgaySinhNguoiKhai_Ngay);
            dic.Add("ThangSinhKhai", NgaySinhNguoiKhai_Thang);
            dic.Add("NamSinhKhai", NgaySinhNguoiKhai_Nam);
            dic.Add("TuoiMe", txtTuoiMe.Text);
            dic.Add("TuoiCha", txtTuoiCha.Text);
            if (CMSUtils.InsertDataSQL("dbo_KhaiSinh", dic.Keys.ToArray(), dic.Values.ToArray()) > 0)
            {
                #region [Upload File]
                object UploadFileDinhKem = DBNull.Value;

                //if (UpLoadFiLe.HasFile)
                //{
                //    if (this.UpLoadFiLe.PostedFile.ContentLength > 1024000)
                //    {
                //      //  this.lblError.Text = "Kich thuoc file khong duoc vuot qua 100KB";
                //        return;
                //    }
                //    string path = "/Uploads/KhaiSinh/" + DateTime.Now.ToString("yyyyMMddHHmmss") + "/";
                //    string fullPath = Server.MapPath("~/" + path);
                //    if (!Directory.Exists(fullPath))
                //    {
                //        Directory.CreateDirectory(fullPath);
                //    }
                //    this.UpLoadFiLe.SaveAs(fullPath + this.UpLoadFiLe.FileName);
                //    UploadFileDinhKem = path + UpLoadFiLe.FileName;
                //    //}
                //}

                #endregion
                string[] colsFile = { "TN_FileDinhKem" };
                object[] valuesFile = { UploadFileDinhKem };
                if (CMSUtils.UpdateDataSQL("MaKS", TaoMaKhaiSinh, "dbo_KhaiSinh", colsFile, valuesFile) > 0)
                {
                    MessageBoxEx.Show("Thêm hồ sơ khai sinh thành công!");
                    bt_LuuHS.Visible = false;
                    Properties.Settings.Default.id = TaoMaKhaiSinh;
                    Properties.Settings.Default.Save();
                    bt_In.Visible = true;
                }
            }
            else
            {
                MessageBoxEx.Show("Lỗi trong quá trình thêm!");
                return;
            }

        }
        #endregion

        private void bt_In_Click(object sender, EventArgs e)
        {
            //So_Tu_Phap.module.show_report.show_report showreport = new module.show_report.show_report();
            //showreport.ShowDialog();
        }
    }
}
